// 环境配置文件
const path = require('path');

// 获取当前环境
const env = process.env.NODE_ENV || 'development';

// 基础配置
const baseConfig = {
  // 应用配置
  app: {
    name: 'AI日常管理助手',
    port: process.env.PORT || 3000,
    host: process.env.HOST || 'localhost'
  },
  
  // 数据库配置
  database: {
    dialect: 'sqlite',
    logging: env === 'development' ? console.log : false
  },
  
  // API配置
  api: {
    version: 'v1',
    rateLimitWindowMs: 15 * 60 * 1000, // 15分钟
    rateLimitMax: 100 // 限制每个IP 15分钟内最多100个请求
  },
  
  // JWT配置
  jwt: {
    secret: process.env.JWT_SECRET || 'your-secret-key',
    expiresIn: process.env.JWT_EXPIRES_IN || '7d'
  },
  
  // CORS配置
  cors: {
    origin: env === 'production' 
      ? ['https://yourdomain.com'] 
      : ['http://localhost:3000', 'http://127.0.0.1:3000'],
    credentials: true
  }
};

// 环境特定配置
const envConfigs = {
  development: {
    ...baseConfig,
    database: {
      ...baseConfig.database,
      storage: path.join(__dirname, 'db', 'dev.db')
    },
    logging: true
  },
  
  test: {
    ...baseConfig,
    database: {
      ...baseConfig.database,
      storage: ':memory:' // 使用内存数据库进行测试
    },
    logging: false
  },
  
  production: {
    ...baseConfig,
    database: {
      ...baseConfig.database,
      storage: path.join(__dirname, 'db', 'prod.db')
    },
    logging: false
  }
};

// 合并配置
const config = {
  ...envConfigs[env],
  env
};

module.exports = config;